package com.yxym.codeblock;

public class CodeBlockDetail01 {
    public static void main(String[] args) {
        //创建对象实例
        System.out.println(Cat.n1);//使用静态属性

        A a = new A();
        A a1 = new A();
        A a2 = new A();
    }
}
class Animal{
    //静态代码只执行一次
    static {
        System.out.println("Animal的静态代码1被执行...");
    }
}
class Cat extends Animal{
    public static int n1 = 10;
    static {
        System.out.println("Cat的静态代被调用====");
    }
}
class A{
    //静态代码只执行一次
    //static代码是类加载时执行，只执行一次
    static {
        System.out.println("============");
        System.out.println("A的静态代码1被执行...");
    }
    //普通代码块，在new对象时被调用，每创建一个对象就调用一次
    //可以简单地理解，普通代码块是构造起的补充
    {
        System.out.println("D的普通代码块");
    }
}